Environment Customization Based On Location

ABSTRACT

A user&#39;s location is automatically transmitted to a network, and the network automatically customizes one or more environments, such as by customizing communication devices, other types of devices, or the like, based on the detected location and on profile information. Customizing an environment may include enabling services, such as setting up a public telephone or hotel telephone with a user&#39;s home base telephone settings and/or services, and/or may include disabling functions, such as disabling long-distance service when the user is away from home.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. patent application Ser. No.13/029,236 filed Feb. 17, 2011, the contents of which are incorporatedby reference herein in their entirety, which is a divisional of U.S.patent application Ser. No. 09/834,562 filed Apr. 13, 2001, now U.S.Pat. No. 7,908,211, the contents of which are incorporated by referenceherein in their entirety.

BACKGROUND OF THE INVENTION

1. Field of Invention

This invention relates to customizing environments for users. 2.Description of Related Art

Some telecommunications service providers offer a “follow-me”call-forwarding service that allows a user to forward his or her callsto a location other than a location normally associated with the numberdialed by a calling party as exemplified by U.S. patent Ser. No.09/013,995 “GPS-Based Follow-Me Call Forwarding Service” filed Jan. 27,1998, and assigned to AT&T. For example, the user may instruct thatcalls placed to his or her office telephone are to be forwarded to ahome telephone or a mobile phone. Such services are convenient and newtechnology may be leveraged to further develop such convenient features.

SUMMARY OF THE INVENTION

This invention provides environment customization systems and methodsthat customize one or more environments, based on a user's (or any otherobject's) location. According to the invention, a location of atransmitter associated with a user (or object) is detected, and aprofile is obtained. The one or more environments are customized basedon the location and the profile.

Customizing an environment may include modifying settings of one or moredevices at a particular location. For example, when on a business trip,a user's computer, e-mail server, etc. at work may be changed to forwardreceived e-mail to the user's personal digital assistant (PDA) and theuser's facsimile machine may be changed to forward facsimiles to aco-worker's facsimile machine and to send a return facsimile indicatingthat the user is away on a trip and to indicate that the facsimile isbeing handled by the co-worker. The environments of multiple locationsmay be included. For example, when a transmitter is detected at alocation away from a user's home, an environment at the current locationof the transmitter (e.g., a hotel) may be customized, and an environmentat the user's home may also be customized.

The customization of an environment may include enabling and/ordisabling one or more functions, by sending commands, downloading files,etc. to devices at the customized locations. For example, a personalcomputer may be customized by changing initialization parameters and/orby changing device drivers, for example. New locations of the user maybe transmitted to a customization device via a network and thecustomization device may customize any device reachable via the network.

These and other objects, advantages and salient features of theinvention are described in or apparent from the following description ofpreferred embodiments.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a diagram of an automatic environment customization system;

FIG. 2 is an exemplary block diagram of an environment customizationdevice 400 of FIG. 1;

FIG. 3 is a diagram of the automatic environment customization system ofFIG. 1 overlaid by location detection zones;

FIG. 4 is a flowchart of an exemplary method for determining a locationand customizing an environment; and

FIG. 5 is a flowchart of an exemplary method for customizing anenvironment.

DETAILED DESCRIPTION OF PREFERRED EMBODIMENTS

This invention provides an environment customization system thatcustomizes one or more environments, based on a user's (or any otherobject's) location. For example, when the user is traveling and checksinto a hotel, the user's location determined by a Global PositioningSystem (GPS) device, for example, may be transmitted to a network. Thenetwork may then customize an environment to be engaged by the user,such as the television service in the user's hotel room (e.g., set thehotel TV to the user's “home base” cable TV channels), the user's callforwarding service (e.g., forward calls to the user's hotel roomtelephone), and the temperature of the hotel room (e.g., set the hotelroom temperature to be the same as the user's home, or a travelingtemperature pre-specified by the user), provided that these devices arecontrollable from a central control device capable of acceptingcustomization commands.

Environments at other locations may be customized. For example, the usermay have had problems in the past with unauthorized users (e.g., friendsof the user's children or the like) making long-distance telephone callsfrom the user's home telephone while the user is away. Therefore, theuser may disable long-distance service from the home telephone when theuser is more than 100 miles away from home.

Various other services or service options could also be customized. Forexample, Cable TV channels or programs may be restricted (or expanded).The heat in the user's home may be adjusted (e.g., turned down when theuser is away), and various lights, may be cycled on or off based ondifferent parameters to simulate occupancy provided appropriate controldevices are provided to control these mechanisms. A rental car may becustomized (via wireless connection) to the user's preferences such asseat adjustments, air condition temperature, radio stations and/or thelike assuming a control mechanism is available for controlling thesedevices. Thus, the customization system may provide customizedenvironments based on the physical location of a person.

FIG. 1 is an exemplary diagram of an environment customization system10. The environment customization system 10 may include one or morenetworks such as networks 100, 200 and 300. The networks 100, 200 and300 may be combinations of any types of networks, but for this exampleit is assumed that networks 100 and 200 include hybrid fiber coaxial(HFC) networks, and that the network 300 includes an Internet protocol(IP) network (e.g., the World Wide Web). Each of the networks 100 and200 are coupled to various devices. For example, the network 100 may becoupled to one or more wireless towers that wirelessly transmit and/orreceive information, such as wireless tower 110; a device 150, which maybe a car with a wireless link 105 to the network 100; and/or amultiple-terminal adapter (MTA) 140 that provides connections betweenmany devices such as devices 142-146 in a home (home base 130) and thenetwork 100, for example. Towers such as the wireless tower 110 mayprovide for wireless communications such as pages, cell phones, personaldigital assistants with wireless links, etc. Similarly, the network 200may be coupled to a wireless tower 10, MTA 240 supporting devices242-244, and devices 250-270. The network 300 may also be coupled to awireless tower 310, an environment customization device 400, and adevice 600.

The device 600 may be any device controllable by the environmentcustomization device 400. For example, the device 600 may be a computersuch as public PC in an airport or the like, or a computer at the user'sfriend's house, the user's office, or the like.

While shown as a centralized device coupled directly to the network 300,the environment customization device 400 may be coupled to any of thenetworks 100-300 or be distributed throughout the networks 100-300, itsfunctions being performed by various devices such as servers androuters, for example, within each of the networks 100-300. For ease ofdiscussion, the environment customization device 400 is assumed to be acentralized device coupled directly to the network 300 as shown in FIG.1.

A user of the environment customization system 10 may establish a baselocation to serve as a physical location reference point. This baselocation may be referred to as a home base. While convenient, a userneed not establish a home base, but may identify one or more referencepoints on which the environment customization system 10 may base itsdecisions for taking certain customization actions. For the remainder ofthis description, a home base is assumed to be the reference point forease of understanding.

The MTA 140 of the home base 130 may have attached a set top box (STB)or other suitable type of Customer Premise Equipment (CPE) that canreceive and transmit various types of information to/from the network100. For example, the MTA 140 may be adapted to handle telephonecommunications, cable TV transmissions, digitized information to/fromthe user's computer, etc., and may also be able to control variousdevices within the user's home, represented by devices 142-146, such aslights, heat, etc. (assuming that these devices have been adapted tointeract with the MTA 140 and execute commands received from the MTA).For example, the devices 142-146 may be a telephone, a television set,and a thermostat that controls the temperature in the user's home.

Each of the devices 142, 144 and 146 may be provided with an ability toset a device configuration based on received signals from the MTA 140.Thus, these devices 142-146 may be configured as desired by the user.For example, the communication device 142 (a telephone) may have aplurality of speed dial buttons (e.g., dial a telephone number bypushing a speed dial button). The telephone numbers assigned to each ofthe speed dial buttons may be set as a configuration for the telephone.Thus, the MTA 140 may set and read the configured telephone numbers andthe speed dial buttons that are assigned. The communication device 144(a television) may also be configured to receive a specified set ofstations assigned to user-selected channel numbers. For example, NBC maybe assigned to Channel 4 while CBS may be assigned to Channel 9, etc.(It should be appreciated that the configuration may be in the MTA 140,rather than in the communication device 142 and/or 144 itself.)Similarly, the device 146 (a thermostat) may be configured to maintainthe temperature at 65° F. during the day from 6 a.m. and 70° F. at nightafter 8 p.m.

The device 150 (a car) may have various devices that may each becontrolled in response to user commands. For example, the car 150 maycontain electronically controlled power seats, power mirrors, radio anda speed governing device responsive to user commands received via link105. All of these devices may be configurable to specific settings bythe environment customization device 400 via the networks 300 and 100.

The environment customization device 400 may detect a user's locationand control one or more environments based on the location and on storedprofile information. The user may carry a transmitter 500, which is adevice that provides the environment customization device 400 with awayto geographically locate the user. The transmitter 500 may, for example,be a Global Positioning System (GPS)-based transmitter that receivesposition information from GPS satellites (not shown), determines itsposition based on the GPS information, and transmits the position to theenvironment customization device 400 via the networks 100-300. Thetransmitter 500 may transmit a unique identification signal along withthe position information so that it can be distinguished from othertransmitters.

Other physical location detection methods may also be used. For example,cellular telephones periodically transmit an identification signal thatis unique to each cellular telephone. Thus, this identification is usedto indicate the location of the cellular telephone with a resolutionrelating to base station locations. Therefore, the cellular network mayautomatically forward location information to the customization device400 every time a signal is received from a given telephone, or totransmit an updated location to the networks 100-300 each time aposition change is detected for the given telephone. Thus, the signaltransmitted from the transmitter 500 does not necessarily contain actualposition information.

In the following examples, the transmitter 500 is portable. However, astationary device, such as a public pay phone, a personal computer, orthe like, may serve as the transmitter. For example, a user may call theenvironment customization device 400 from a hotel telephone and speakinto the telephone receiver or input a personal identification number(PIN) or the like. The environment customization device 400 could thendetermine where the call was coming from using well-known methods, anddetermine who the caller was based on voice recognition, the input PIN,or the like. As another example, a user could send an e-mail requestincluding the PIN or the like, and the environment customization device400 could then determine the user's location based on where the e-mailwas coming from, and distinguish the user using the PIN.

FIG. 2 shows an exemplary embodiment of the environment customizationdevice 400. The environment customization device 400 may include anetwork interface 420, a controllable device database 430, a locatorunit 440, a profile database 450, a memory 460, and a controller 470,all of which may be interconnected by a bus 480. While FIG. 2 shows abus architecture, any type of architecture may be used as is well knownto one of ordinary skill.

The memory 460 may store any necessary control programs or data used bythe controller 470, and may serve as a buffer if needed for informationgoing into or out of the environment customization device 400. Thecontroller 470 accesses various databases which are part of/used by theenvironment customization device 400, generates control signals asneeded, and transmits and/or receives control signals via the networkinterface 420. Portions of stored data may also be located in thenetworks 100-300. Thus, these portions may be received via the networkinterface 420 but are assumed to be part of memory 460 for convenience.

The controllable device database 430 stores information relating todevices or environments that may be customized via the networks 100-300.For example, information relating to the MTA 140, 240, the devices 142,242-146-246 may be stored in the controllable device database 430.Basically, the controllable device database 430 stores information suchas a description (available functions, etc.) of all devices accessibleby the environment customization device 400, along with positioninformation (if appropriate) indicating the devices' position withrespect to the network(s). Table 1 gives an example of informationstored in the controllable device database.

TABLE 1 Loca- tion Available Loca- descrip- functions/ tion tion Deviceservice Settings 1 John MTA — — Smith's home base Computer MicrosoftWord Tool bar; macro; template; clip art Microsoft Excel Formulas, etc.America Online Home page setting . . . *Check profile *Check profile . .. . . . Telephone Call forwarding *Check profile Call waiting —Long-distance 10-10-811, . . . Local service — Caller ID — Adjustable 70dB volume Speed dial SD1 = 419-856-1234 SD2 = 703-123-4567 . . . *Checkprofile *Check profile . . . . . . Television Interactive — functionsCable service ESPN, HBO, . . . *Check profile *Check profile . . . . . .Thermostat — 65° F. at 6 am to 8 pm; 70° F. at 8 pm to 6 am . . . 2Marriot MTA — — Hotel in Reston, VA (Room 1105) Computer Microsoft Word— *Check profile *Check profile Telephone Local service — Speed dial*Check profile *Check profile *Check profile Thermostat — 60° F. . . . 3Dulles Public Adjustable *Check profile Inter- Telephone volume (default= 55 dB) national Airport Speed dial *Check profile . . . — — John Seatposition Height = 18 cm Smith's car Forward/back = 4 cm back from middleposition Seatback tilt = 110° from seat Radio Memory 1 = 98.7 FM Memory1 = 90.9 FM . . . Speed governor *Check profile (Default = Not active)Climate control 68° F. . . . *“Check profile” entries indicate that aprofile should be consulted to determine whether to enable or disablefunctions, and to determine setting information,

It should be appreciated that, when resolution of the position locatorsystem is high enough (i.e., when position can be determined with enoughaccuracy), the devices in Table 1 may each be listed as being in aseparate location. In other words, for example, Table 1 considers alldevices at John Smith's home to be in “Location 1”; but if the positionlocator system has high enough resolution to differentiate locationswithin John Smith's home base, then the telephone, television, computer,etc. may be listed at separate locations.

Furthermore, it can be appreciated that some devices are not listed bylocation. For example, it would be meaningless to associate a locationwith John Smith's car, since it is mobile and will change locationoften.

The locator unit 440 determines the current location of a user based oncommunications received via the network interface 420. Thus, the locatorunit 440 is able to identify individual users, and to determinelocations of devices from which communications are received.

When a communication is received, the locator unit 440 identifies theuser via information from the communication, such as a header of a datapacket, for example. The user may be identified by name, a special codesuch as a personal identification number (PIN), or the like. If atelephone is used, for example, the user may enter the PIN by pressingappropriate keys of the telephone dial pad. The locator unit 440 mayalso distinguish the user using voice recognition, for example. Once theuser is identified, the locator unit 440 may retrieve the user profilefrom the locator database to further process the communication, such asby making position updates.

The locator unit 440 may obtain position information of the user inseveral ways. For example, the position information may be received viathe towers 110, 210 or 310 (FIG. 1) via the network interface 420, andmay include the exact position of the user if the device used by theuser has GPS capability. In this case, the locator unit 440 stores themost recently received position information transmitted from the user'stransmitter 500 in a locator database. The position information of eachsuccessive transmission may replace the previous position information inthe locator database. The transmitter 500 may transmit the user'slocation at periodic intervals (e.g., every five minutes), for example.The frequency of the transmitter position information updates may be setby the user or receive a default system value, for example. Thefrequency of the updates may be set as the need arises. For example, thetransmitter 500 may be turned off for a substantial period of time. Whenthe user desires to apply the customization function, a transmit buttonmay be pressed so that the environment customization's device 400 mayacquire the position and customize the user environment as appropriate.For example, if the user uses a controlled personal computer whiletraveling, such as a public PC, the transmitter 500 may be activated toinitialize the personal computer with the user's desired configuration.

If the communication does not include any position information, theuser's position may be inferred. For example, if a cell phone (or otherwireless device) is used and the base station identification is includedin the communication, then the locator unit 440 may approximate the userposition by determining the base station location. Although not asprecise, the base station location may be sufficient to determine thetype of processing that is required based on the user profile. Forexample, the user profile may specify customization of home and officeif the user is over 500 miles away from home. In such a case, the basestation location may be adequate indication to make the customizationdecision.

Other position inferences may also be made. For example, if the usercalls using a pay phone, the locator unit 440 may determine the positionof the pay phone by accessing a telephone database using the pay phoneidentification. If the user makes contact by logging on the Internet,for example, the locator unit 440 may determine the user location viathe log-on ID, the Internet service provider (ISP) server ID, etc. Thus,explicit indication of the user's position may not be necessary forcustomization decisions.

Table 2 shows an example of information contained in the locator unit440.

TABLE 2 User Current location John Smith Location 1 Mary Smith Location1 Jane Johnson Location 2 . . . . . .

The profile information stored in the profile database 450 indicates howparticular environments, such as particular devices, should becustomized for a given user. For example, a user's profile may includethe user's telephone settings (e.g., speed-dial buttons or the like)and/or subscribed-to features (e.g., call-waiting, call-forwarding andthe like) and/or authorized level of access (e.g., long-distance serviceor the like). A user's profile may also contain information such as theuser's preference for thermostat settings, preferred radio stationsand/or seat position in an automobile, computer editor settings fortoolbar, macros, etc., and the like. Also, profiles may indicatepreferences for various environments, such as hotel, rental car andvarious geographical conditions assuming such locations arecontrollable. Table 3 shows an example of a portion of the informationthat may be contained in a profile.

TABLE 3 Type of Visiting Personal Site Computer Telephone TelevisionTemperature Hotel Office Home and Home 70° F. Office Resort Home HomeHome 70° F. Home *Reference *Reference *Reference — Client 1 Office 1Office N/A N/A Client 2 Office Office N/A N/A Client 3 Office 2 OfficeN/A N/A Field Office Office Office N/A 70° F. Roadside N/A Home and N/AN/A Office Airport Office Home and Home N/A Office Restaurant HomeOffice N/A N/A Rental Car Office Office N/A 65° F. Airplane Home and N/AHome N/A Office . . . . . . . . . . . . . . . Unknown Home Home Home N/A*“Reference” indicates that the settings of the indicated device areused as a reference.

In Table 3, it can be seen that some devices are to be set with settingscorresponding to the user's home device settings, some devices are to beset with settings corresponding to the user's office device settings,and some devices are to be set with settings corresponding to both theuser's office device settings and home device settings. When the uservisits Client 1, for example, a personal computer is customizedaccording to an “Office 1” command. The “Office 1” command is, forexample, a command that enables only those functions, programs and/orinformation applicable to Client 1. When the user visits Client 2, the“Office” command is applied, which sets a computer at Client 2 with thesame settings as the settings in the user's office computer. When theuser visits Client 3, an “Office 2” command is used for customization.The “Office 2” command is, for example, a command that enables onlythose functions, programs and/or information applicable to Client 3.

If there is a conflict—for example, when the profile indicates tocustomize using both “Home” and “Office” command—an appropriate schememay be implemented for resolving conflicts. For example, whencustomizing a telephone in a hotel room, if the “Office” speed dialbuttons are different from the “Home” speed dial buttons, the “Office”speed dial buttons may be given priority, or the speed dial buttons maybe shared between the “Home” and “Office” command. For example, thefirst five speed dial buttons of the hotel room telephone may be set tocorrespond to the first five speed dial buttons in the “Office” command,and the next five buttons of the hotel room telephone may be set tocorrespond to the first five speed dial buttons of the “Home” command.

In Table 3, the user's home is used as a reference location. However,another location, such as the user's office, could also be used as areference location, or one location could serve as a reference for somedevices while another location serves as a reference for other devices.Further, it can be appreciated that not every parameter needs toreference an existing setting. For example, the user's home thermostatis not used as a reference because, for example, the user prefers adifferent temperature than is normally maintained at his or her home.

Table 4 shows an example of another portion of the information that maybe contained in a profile. Specifically, Table 4 shows examples ofdifferent environments that may be customized based on how far the useris from his or her home base.

TABLE 4 Distance 1 Distance 2 Distance 3 Customization Home, Car,Visiting Office, Visiting site Home Sites site

In Table 4, if Distance 1 is 50 miles, for example, then the user'shome, car, and current site that he or she is visiting will becustomized when the user is 50 miles (or more) from home. If Distance 2is 25 miles, for example, then the user's office and current site thathe or she is visiting will be customized when the user is 25 miles awayfrom home. For example, the user's office may be about 25 miles fromhome, and the user may visit neighboring offices. Thus, about 25 mileswould be an appropriate distance at which to perform customization ofthe office and any local sites visited. If Distance 3 is five miles,then the user's home will be customized when the user is five miles ormore away from home.

The environment customization device 400 may execute a program thatessentially performs logical functions in the form of if-then-elsestatements, such as if <condition> then <action list 1> else <actionlist 2>. An action list is a set of one or more actions. The conditionmay be a regular expression which has a Boolean value of “TRUE” or“FALSE”. For example, the condition may be A AND B where A has a Booleanvalue of TRUE if the transmitter 500 is 25 miles or more away from thehome base 130; otherwise, A has a value of FALSE. B has a value of TRUEif the current location is near a public telephone; otherwise, B has avalue of FALSE. Thus, A AND B will have a value of TRUE if thetransmitter 500 is 25 miles or more away from the home base 130 and isnear a public telephone.

Actions may be specifications taken by the environment customizationdevice 400 to customize devices or environments. Thus, the environmentcustomization device 400 may customize environments based on logicalvalues of Boolean variables combined using operators in regularexpressions specified by the subscriber. The operators may include anymathematical operators (e.g., algebraic/set operators such as >, <, =,−, ÷, ×, ⊂, ⊂, ⊃, ⊃, ⊂/, ∪, ∩, ∈, ∉, ∀, ∃,

, etc., and Boolean operators such as AND, OR, NOT, XOR, etc.).

It should also be appreciated that, rather than using logic as describedabove, an artificial intelligence engine or the like could be used todetermine environment customizations.

A user's profile may also contain one or more codes for collectingconfiguration data, such as by retrieving setting information from alocation such as the user's home base 130. For example, a code may beincluded which requires retrieval of configuration information, such ashome base telephone, television, computer and thermostat settings, ifthe user's location is greater than 50 miles from a reference point(e.g., the office location). Thus, when the user leaves home, thesetting information from the home base 130 is retrieved by theenvironment customization device 400 and kept ready for use, ifnecessary, in customizing environments to which the user may travel.

It should be appreciated that the controllable device database 430, thelocator unit 440, the profile database 450 and the memory 460 mayactually be part of a same memory device, or may be distributed amongone or more of the networks 100-300.

The controllable device database 430 may organize the controllabledevices into zones. For example, the zones may relate to physicallocation as well as network connections as shown in FIG. 3. Zones 1-5 inFIG. 3 show exemplary positional relationships of various devicesconnected to the networks 100 and 200. As shown, the user's home base130 and the device 150 are located in Zone 1. The MTA 240 and itsconnected devices 242-246 are located in Zone 2. Communication device250 is located in Zone 3, Device 260 is located in Zone 4, and device270 is located in Zone 5.

The zones could be used by the environment customization device 400 toquickly determine which devices may be controlled once the location ofthe user is determined. For example, when the user needs to take a tripto Zone 5 going through Zones 2-4 sequentially on the way, theenvironment customization device 400 may configure the environment forthe user at each zone when the user arrives.

When the environment customization device 400 determines that the userhas arrived in Zone 2 (e.g., at a hotel that is connected to the network200 via the MTA 240), the devices 242-244 (assumed to be associated withthe user's hotel room) may be configured based on the user's profile.Thus, the telephone 242, the telephone 244 and the thermostat 246 of thehotel room may be set accordingly. The user profile may instructconfiguring the devices at Zone 2 to have the same values as anotherlocation, such as home base 130 or the user's office (not shown). Forexample, the user may specify the telephone to be configured similarlyto the telephone at the office while specifying the television to havethe same configuration as the home base. If such is the instruction, theenvironment customization device 400 may retrieve the telephoneconfiguration from the user's office and the television setting for homebase and set the corresponding devices at the hotel accordingly.

The environment customization device 400 may also adaptively configurethe devices at Zone 2 based on logical instructions in the user profile.For example, the user profile may instruct to first determine all thedevices that are available at Zone 2. If the hotel television is not thequality that the user likes, but a personal computer is available withadvanced graphics, the user profile may direct that the television beconfigured to receive only the news channel while the computer beconfigured to access user favorite sites (e.g., a chat room). However,if the hotel television includes special features (such as two-wayinteractive TV, for example), the profile may instruct the environmentcustomization device 400 to configure the television for this feature.

Thus, the devices at Zone 2 (or any other zone) need not be set to thesame configuration of devices at other locations, but may be freely setas desired.

For example, if the user's home base temperature is set at 65° F. by thedevice 146 (thermostat) because the user's spouse prefers thattemperature, while the user prefers a temperature of 70° F., the user'sprofile may instruct the device 246 (thermostat) in the hotel room toset the temperature at 70° F., rather than 65° F. Furthermore, the usermay wish to have different services available on communication deviceswhen he or she travels than when he or she is at home. For example, theuser's home base communication device 144 (television) may have manycable channels, but no interactive functions; and when the user travels,the user may want to have interactive functions available but not wishto view many cable channels. Thus, the user's profile may containinformation that instructs the environment customization device 400 toenable different functions in the hotel television 244 than are enabledin the home base television 144.

As described above, the device 150 is, in this example, the user'spersonal car. When the user leaves Zone 1 and travels to Zone 2, andleaves the device 150 (car) at home, the user may wish to ensure that ateenager living at the user's home base 130 does not drive theautomobile 150 faster than 55 miles per hour. Thus, the environmentcustomization device 400, upon detecting that the user is out of Zone 1,activates a speed governing device (not shown) in the automobile 150that prevents the automobile 150 from going faster than 55 miles perhour. The automobile 150 may also have a position transmitter so thatthe environment customization device 400 may, for example by comparingthe automobile's position with the user's position, determine whetherthe user is in the car.

The user may also wish to prevent long-distance calls from being madefrom the communication device 142 in the user's absence and thus theenvironment customization device 400 may, upon detecting that the userhas moved to Zone 2, disable long-distance service from thecommunication device 142. Another example of disabling functions is thatthe user's computer at work, or at least certain functions of thecomputer, could be disabled or “locked out” when the user is away fromthe computer. Thus, the environment customization device 400 providessecurity measures against unauthorized use of various devices.

Next, assume the user (carrying the transmitter 500) checks out of thehotel, leaves Zone 2 and travels to Zone 3. Communication device 250,which is a public telephone in this example, is located in Zone 3. Whenthe user enters Zone 3, the public telephone may, similarly to thecommunication device 242 described above, automatically be configured tothe user's predefined settings (e.g., credit card number, speed dial byphone if available, and/or sound level) either based on a proximitycriteria or a request from the user activated by pressing a button onthe transmitter 500, for example. Proximity detection may beaccomplished in several ways. For example, specially equipped pay phonesmay detect an intensity of a transmitted signal from the transmitter500. The transmitted signal may be the location signal or may be aseparate weak signal that may be used for this purpose. When the user iswithin a predetermined distance (12 inches, for example) and apredetermined amount of time (e.g., 20 seconds), then the telephone maysend a request to one of the networks 100-200 for configurationinformation. The proximity information may be obtained using the GPSsystem if the number of pay phones in the general area is small and theGPS resolution is sufficient to uniquely determine the pay phone that isclosest to the user.

Alternatively, the pay phone may not take any action until it isactivated by insertion of a coin, for example. After receiving the coin,the pay phone may receive the key entries and transmit the key entriesand the identification of the user received via a transmitter signalfrom the transmitter 500 to the network 100-300. The network 100-300 mayin turn send a request to the environment customization device 400 todecode the key entries and respond accordingly.

The user then travels to Zone 4 from Zone 3. Zone 4 is a rental carvendor and the user has reserved a car. When the specific rentalcar(device 260) has been assigned to the user, the environmentcustomization device 400 may be informed (by the rental car vendor).While the environmental customization device 400 may configure therental car 260 immediately, this may not be appropriate since duringbusy periods the rental car 260 may not actually be ready for service.Thus, the environment customization device 400 may wait for a proximitycriterion to be met as discussed above. When the environmentcustomization device 400 detects that the proximity criterion issatisfied, the rental car 260 may be configured wirelessly via thenetworks 200-300. For example, the power seats, radio and power mirrorsmay all be set according to the user's desires.

Configuring the rental car 260 may be pre-authorized by the rental carvendor, for example. In other words, the rental car vendor may haveaccess to the environment customization system 10 and act as a “gate”that only allows automatic control of rental car settings uponappropriate prepayment to the rental agency by the user.

Continuing with the example, the user drives the rental car 260 to theuser's vacation residence in Zone 5, where device 270 is located. Thedevice 270 is a thermostat responsive to user commands from the network200, and controls the vacation residence temperature based on the user'sprofile when the user enters Zone 5.

It is also possible to add one or more levels of security to theenvironment customization system 10. For example, instead ofcustomization by the environment customization device 400 beingcompletely automatic, the user may be required to input a unique code,such as a Personal Identification Number (PIN) or the like, in order tocomplete the customization information. In this way, an unauthorizeduser who, for example, stole the transmitter 500 from the authorizeduser may be prevented from having access to the user's customizationfeatures.

FIG. 4 is a flowchart of an exemplary method for customizing anenvironment. In step 1000, the process detects a location based on asignal received from a transmitter 500. In the above-described example,the transmitter 500 was carried by a user, but it should be appreciatedthat a transmitter 500 associated with a particular user may, ratherthan being directly carried by the user, be installed in the user'sautomobile, attached to any object, or the like. As discussed, thetransmitter could even be a pay telephone. After detecting the locationof the transmitter 500, the process goes to step 2000 and obtains aprofile. After obtaining the profile, the process goes to step 3000.

In step 3000, the process customizes an environment based on thelocation detected in step 1000 and on the profile obtained in step 2000.The environment that is customized may be an environment at the user'scurrent location, or an environment not at the user's current location.Furthermore, in step 3000, more than one environment may be customized.For example, an environment at the user's current location may becustomized, and one or more environments at the user's home base mayalso be customized. The process then goes to step 4000 and ends.

FIG. 5 is a flow chart of an exemplary method step 3000 of FIG. 1. Instep 3100, the process determines whether any information needs to beretrieved from a location, such as a home base or the user's office, forpossible subsequent use. This determination may be based on a profile.For example, the profile may indicate that the user will be on vacationfrom August 15 through August 24, and thus the environment customizationdevice 400 determines that there is a high likelihood that the home baseand/or office information will be needed to customize environments thatwill be encountered by the user while on vacation. As another example,the environment customization device 400 may be programmed to retrievethe home base information any time the user gets more than 50 miles awayfrom home.

If any information needs to be retrieved, the process continues to step3200; otherwise, the process goes to step 3300. In step 3200, theprocess retrieves the customization information, and then goes to step3300. It should be appreciated that it is possible to retrieve home baseinformation only when an actual need arises, but it may be preferable toretrieve it in advance, as outlined above. For example, if one or moreenvironments at the home base are altered after the user leaves (e.g.,the heat is turned down or the long-distance telephone servicedisabled), then the current setting information would not be correct(i.e., not what the user desires) if it is retrieved after beingaltered.

In step 3300, the process determines which environment or environmentsto customize. The environments to be customized may include environmentsat the user's present location, environments at the user's home base,and/or environments at other locations (e.g., office, relative's house,user's car, etc.). The process then goes to step 3400, customizes thefirst environment, and goes to step 3500.

In step 3500, the process determines whether there are any moreenvironments to customize. If there are any more environments tocustomize, the process returns to step 3400 and repeats steps 3400-3500.When there are no more environments to customize, the process goes tostep 3600 and returns to step 4000 of FIG. 4.

The environment customization device 400 can be implemented on a generalpurpose or special purpose computer, a programmed microprocessor ormicrocontroller and peripheral integrated circuit elements, anapplications specific integrated circuit (ASIC) or other integrated ornon-integrated circuits, a programmable logic devices such as a PLD,PLA, FPGA or PAL, or the like, or any appropriate combination thereof.In general, any device capable of implementing at least some portions ofthe flowcharts shown in FIGS. 4 and 5 can be used to implement theenvironment customization device 400.

While the invention has been described in conjunction with the specificembodiments described above, many equivalent alternatives, modificationsand variations 20 will become apparent to those skilled in the art oncegiven this disclosure. For example, the environment customization device400 is shown in FIG. 2 using bus architecture when any otherarchitecture may be used as is well-known in the art. As anotherexample, although an example was given in which two HFC networks 100 and200 were linked via an IP network 300, it should be appreciated that theinvention may be implemented on a single network, and/or that any othersuitable network type or types is possible. Accordingly, the exemplaryembodiments of the invention as set forth above are considered to beillustrative and not limiting. Various changes to the describedembodiments may be made without departing from the spirit and scope ofthe invention.

1. A customization system comprising: a network interface; and acontroller coupled to the network interface, the controller: receivingover a network user identification and location information for a user;extracting a current location from the location information; retrievinga profile for the user, the profile including customization informationfor a plurality of customizable devices at a plurality of locationsincluding the current location; communicating over the network with acustomizable device at the current location to customize thecustomizable device based on the customization information in theprofile for the current location of the user; extracting a referencelocation from the profile; and generating a list of environments tocustomize based on a relationship between the reference location and thecurrent location.
 2. The system of claim 1, wherein the controllerretrieves customization logic from the profile and executes thecustomization logic to generate the list of environments.
 3. The systemof claim 2, wherein the customization logic comprises: a table listingof environments that are to be customized based on a difference betweenthe current location and the reference location; and an expression of alogical function of status parameters in the profile, the currentlocation and the reference location.
 4. The system of claim 2, whereinthe controller extracts customization commands from the profile,retrieves configuration data from sources specified in the customizationcommands, and maps the configuration data to customizable devices in alist of customizable devices.
 5. The system of claim 4, wherein thesources specified in the customization commands comprise a customizedenvironment and a database of configuration data for particularcustomizable devices.
 6. The system of claim 4, wherein the controllermatches portions of the configuration data with customizable devices inthe list of customizable devices for environments in the list ofenvironments, collects configuration data for customizable devices inthe list of customizable devices for the environments in the list ofenvironments, and integrates configuration data for the customizabledevices.
 7. The system of claim 6, wherein the controller identifies anetwork address for the customizable devices, and sets, via the network,the customizable devices to operate in a manner consistent withcorresponding configuration data,
 8. The system of claim 1, wherein thecustomizable devices include communication devices.
 9. An environmentcustomization method comprising: establishing a reference location wherea customizable device is located; acquiring a configuration for thecustomizable device; storing the configuration for the customizabledevice with an identifier as a stored configuration; at a secondlocation other than the reference location, retrieving the storedconfiguration over a network; and configuring an additional customizabledevice at the second location with the stored configuration.
 10. Themethod according to claim 9 further comprising: acquiring an additionalconfiguration for the additional customizable device; and storing theadditional configuration for the additional customizable device locatedat the second location with another identifier.
 11. The method accordingto claim 9 further comprising configuring the customizable device with afurther configuration that is different than the configuration at thereference location.
 12. The method according to claim 9 whereinestablishing the reference location is determined using a globalposition system.
 13. The method according to claim 11 wherein storingthe configuration for the customizable device located at the referencelocation includes tabulating a reference location identification, alocation description, a customizable device type, available functions ofthe customizable device, and settings for the customizable device. 14.The method according to claim 13 further comprising associating thereference location identification, the location description, thecustomizable device type, the available functions of the customizabledevice, and the settings for the customizable device with a useridentification and creating a profile for a user associated with theuser identification.
 15. The method according to claim 11 wherein thesecond location is a pre-defined distance from the reference location.16. The method according to claim 11 wherein the reference location is azone.
 17. The method according to claim 16 wherein the zone is a networkconnection.
 18. The method according to claim 16 wherein the zone is ageographic region.
 19. A computer program embodied on a non-transitorycomputer-readable storage medium, the computer program includinginstructions for causing a processor to implement a process forenvironment customization, the process comprising: receiving over anetwork user identification and location information for a user;extracting a current location from the location information; retrievinga profile for the user, the profile including customization informationfor a plurality of customizable devices at a plurality of locationsincluding the current location; communicating over the network with acustomizable device at the current location to customize thecustomizable device based on the customization information in theprofile for the current location of the user; extracting a referencelocation from the profile; and generating a list of environments tocustomize based on a relationship between the reference location and thecurrent location.